Skip to content

DojoデータをYAML形式でキャッシュする機能を追加#20

Merged
yasulab merged 3 commits intomainfrom
cache-dojo-data-as-yaml
Dec 31, 2025
Merged

DojoデータをYAML形式でキャッシュする機能を追加#20
yasulab merged 3 commits intomainfrom
cache-dojo-data-as-yaml

Conversation

@yasulab
Copy link
Copy Markdown
Member

@yasulab yasulab commented Dec 31, 2025

概要

DojoデータをYAML形式でキャッシュし、Jekyllのsite.data機能を使ってJSON APIを提供する機能を追加しました。

変更内容

  • 🆕 cache_data_as_yaml.rb: JSONデータをYAML形式でキャッシュするスクリプトを追加
  • 🆕 earth.json / japan.json: Jekyllでsite.dataから動的にJSON生成するページを追加
  • 📝 Rakefile: 新しいタスク cache_data_as_yaml を追加
  • 🔄 GitHub Actions: 毎日の自動更新にYAMLキャッシュ処理を統合

機能詳細

YAMLキャッシュ

  • _data/earth.yml: Clubs APIの全データ(1469道場)をYAML形式で保存
  • 文字列キーを使用(brand:, name: など)

動的JSON生成

  • earth.json: Clubs API のキャッシュ化されたデータ
  • japan.json: 上記から countryCode == "JP" でフィルタリングした日本の道場データ(Active/Inactive の両方を含む314道場)※ 現時点
    • Jekyll の Liquid フィルターで動的に生成

出力フォーマット

✅ Cached 1469 Earth dojos to _data/earth.yml
   (Incl.  314 Japan's active/inactive dojos)

テスト

  • bundle exec rake cache_data_as_yaml でYAMLファイル生成を確認
  • Jekyll ビルドでエラーが発生しないことを確認
  • 生成された japan.json が正しく314道場を含むことを確認

## 変更内容
- cache_data_as_yaml.rb: JSONデータをYAML形式でキャッシュするスクリプトを追加
- earth.json/japan.json: Jekyllでsite.dataから動的にJSON生成するページを追加
- GitHub Actions: 毎日の自動更新にYAMLキャッシュ処理を統合

## 改善点
- データ管理の簡素化: earth.ymlのみ管理(japan.ymlは廃止)
- 動的フィルタリング: japan.jsonはLiquidフィルターで動的生成
- キー形式の統一: YAML/JSON共に文字列キー使用

## 技術的詳細
- earth.yml: 全1469道場のデータを保存
- japan.json: countryCode=="JP"で314道場を動的抽出
- データの重複を排除し、単一ソースを維持
@yasulab yasulab merged commit 3ee88ec into main Dec 31, 2025
1 check passed
@yasulab yasulab deleted the cache-dojo-data-as-yaml branch December 31, 2025 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant